"""
面向过程：以线性的流程为基本单位，通过函数和事物的逻辑来实现程序的设计和实现

面向对象：以对象为基本单位，通过封装、继承和多态来实现程序的设计和实现
类：就是一个模版，类事物的属性和行为组成，变量和方法
对象：按照类这个模版创造出来真实的实物
实例化：从类到对象的过程
抽象化：从对象到类的过程

class 类名：
    类体{变量和方法}

变量 = 类名()
变量.类变量名/方法名

继承：
    单继承：父类只有一个类
    多继承：父类有两个或两个以上的类

class 类名(父类的类名)：
    类体

多态：
    方法重写：在子类中定义和父类重名的方法，但是方法体是不同的，从而实现多态
    方法重载：在同一类中定义多个重名的方法，但是传入的参数不同，从未实现多态

"""
# class Person:
#     def __init__(self,name,age,sex):
#         self.name = name
#         self.age = age
#         self.sex = sex
#
#     def eat(self, food):
#         print(self.name + '正在吃' + food)
#
#     def sleep(self):
#         print(self.name + '正在睡觉')
#
#     def show(self):
#         print('姓名：' + self.name)
#         print('年龄：' + str(self.age))
#         print('性别：' + self.sex)
#
# zhangsan = Person("张三",18,'男')
# zhangsan.age = 19
# zhangsan.eat('西红柿炒鸡蛋')
# zhangsan.sleep()
# zhangsan.show()

# class Animal:
#     def __init__(self,name):
#         self.name = name
#
#     def eat(self,food):
#         print(self.name + '正在吃' + food)
#
#     def sleep(self):
#         print(self.name + '正在睡觉')
#
# class Dog(Animal):
#
#     def __init__(self,name):
#         super().__init__(name)
#
#     def run(self):
#         print(self.name + '正在奔跑')
#
# d = Dog('旺财')
# d.eat('sasda')
# d.sleep()
# d.run()

# class Animal:
#     def __init__(self,name):
#         self.name = name
#
#     def eat(self,food):
#         print(self.name + '正在吃' + food)
#
#     def sleep(self):
#         print(self.name + '正在睡觉')
#
# class Bird(Animal):
#     def fly(self):
#         print(self.name + '正在飞翔')
#
# class fish(Animal):
#     def swim(self):
#         print(self.name + '正在游泳')
#
# class Penguin(Bird,fish):
#
#     def run(self):
#         print(self.name + '正在奔跑')
#
# pen = Penguin('Penguin')
# pen.eat('sad')
# pen.sleep()
# pen.fly()
# pen.swim()
# pen.run()

# class A:
#     def print_a(self):
#         print('我是A')
#
# class B(A):
#     def print_a(self):
#         print('我是B')
#
# b = B()
# b.print_a()

# class Calc:
#     @staticmethod
#     def add(a,b):
#         return a+b
#
# print(Calc().add(1,2))

